<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <title>06_IIFE</title>
  </head>

  <body>
    <!--
1. 理解
  * 全称: Immediately-Invoked Function Expression
2. 作用
  * 隐藏实现
  * 不会污染外部(全局)命名空间
  * 用它来编码js模块
-->
    <script type="text/javascript">
      (function () { //匿名函数自调用
        var a = 3
        console.log(a + 3)
      })()
      var a = 4
      console.log(a);


      (function () {
        var a = 1

        function test() {
          console.log(++a)
        }

        window.$ = function () { // 向外暴露一个全局函数
          return {
            test: test
          }
        }
      })()

      $().test() // 1. $是一个函数 2. $执行后返回的是一个对象
    </script>

  </body>

</html>